home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / games.arc / RECEIVE.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  5.4 KB  |  143 lines

  1. 1000  SCREEN 2 : CLS : KEY OFF : DIM DATAIO$(999)
  2. 1010  '*********************************************************
  3. 1020  '**  COMMUNICATIONS TRANSFER PROGRAM - RECEIVE          **
  4. 1030  '**  OCT 3,1982                      VERSION 1.1        **
  5. 1040  '*********************************************************
  6. 1050  '**  REQUIRES THE SMART MODEM SWITCHES TO BE SET        **
  7. 1060  '**        AS :                                         **
  8. 1070  '**        1 = UP      COMPUTER SUPPORT OF DTR LEAD     **
  9. 1080  '**        2 = DOWN    NON-VERBOSE RESULT CODES         **
  10. 1090  '**        3 = DOWN    RESULT CODES SENT TO SCREEN      **
  11. 1100  '**        4 = DOWN    NO ECHO OF CHARACTERS            **
  12. 1110  '**        5 = DOWN    NO AUTO ANSWER OF PHONE          **
  13. 1120  '**        6 = DOWN    COMPUTER FORCED TO ACCEPT DATA   **
  14. 1130  '**        7 = UP      SINGLE LINE PHONE                **
  15. 1140  '*********************************************************
  16. 1150  '
  17. 1160  '*********************************************************
  18. 1170  '**  transmit file name entry section                   **
  19. 1180  '*********************************************************
  20. 1190  ON ERROR GOTO 1300
  21. 1200  CLS
  22. 1210  PRINT "ENTER COMPLETE FILENAME INCLUDING EXTENSION OF THE FILE TO BE "
  23. 1220  PRINT "TRANSMITTED - NOTE : FILE MUST BE IN ASCII FORMAT FOR PROGRAM "
  24. 1230  PRINT "TO WORK. "
  25. 1240  PRINT
  26. 1250  INPUT "FILENAME = " ; TRANSMIT$
  27. 1260  OPEN TRANSMIT$ FOR INPUT AS #1
  28. 1270  GOTO 1400
  29. 1280  '
  30. 1290  '*********************************************************
  31. 1300  '**  error handling routine for name entry section      **
  32. 1310  '*********************************************************
  33. 1320  FOR X = 1 TO 1000 : NEXT : CLS : FOR X = 1 TO 1000 : NEXT
  34. 1330  IF ERR = 53 THEN PRINT "FILE NOT FOUND "
  35. 1340  IF ERR = 64 THEN PRINT "BAD FILE NAME "
  36. 1350  IF (ERR <> 53) AND (ERR <> 64) THEN PRINT "ERROR IN FILE NAME INPUT "
  37. 1360  LOCATE 5,1
  38. 1370  RESUME 1210
  39. 1380  '
  40. 1390  '*********************************************************
  41. 1400  '**  receive file name entry section                    **
  42. 1410  '*********************************************************
  43. 1420  ON ERROR GOTO 1520
  44. 1430  CLS
  45. 1440  PRINT "ENTER COMPLETE FILENAME INCLUDING EXTENSION WHERE THE FILE TO BE "
  46. 1450  PRINT "RECEIVED WILL BE STORED."
  47. 1460  PRINT
  48. 1470  INPUT "FILENAME = " ; RECIEVE$
  49. 1480  OPEN RECIEVE$ FOR OUTPUT AS #2
  50. 1490  GOTO 1620
  51. 1500  '
  52. 1510  '*********************************************************
  53. 1520  '**  error handling routine for name input section      **
  54. 1530  '*********************************************************
  55. 1540  FOR X = 1 TO 1000 : NEXT : CLS : FOR X = 1 TO 1000 : NEXT
  56. 1550  IF ERR = 53 THEN PRINT "FILE NOT FOUND "
  57. 1560  IF ERR = 64 THEN PRINT "BAD FILE NAME "
  58. 1570  IF (ERR <> 53) AND (ERR <> 64) THEN PRINT "ERROR IN FILE NAME INPUT "
  59. 1580  LOCATE 5,1
  60. 1590  RESUME 1440
  61. 1600  '
  62. 1610  '*********************************************************
  63. 1620  '**  routine to initiate communications                 **
  64. 1630  '*********************************************************
  65. 1640  ON ERROR GOTO 0
  66. 1650  OPEN "com1:" AS #3
  67. 1660  IF (INP(&H3FD) AND &H20) = 0 THEN 1660 'TRANS HOLD REGISTER EMPTY?
  68. 1670  PRINT #3, "AT Z"
  69. 1680  GOSUB 1780
  70. 1690  SEC = 3 : GOSUB 1870
  71. 1700  PRINT #3, "AT S0 = 1"
  72. 1710  GOSUB 1780
  73. 1720  SEC = 3 : GOSUB 1870
  74. 1730  GOSUB 1780
  75. 1740  GOTO 1730    ' IF ANY NON-CONNECT SIGNAL THEN LOOP (DO NOT CONTINUE)
  76. 1750  END          ' IF HERE THEN ERROR - CLOSE AND STOP
  77. 1760  '
  78. 1770  '*********************************************************
  79. 1780  '**  routine to input a line from modem                 **
  80. 1790  '*********************************************************
  81. 1800  LINE INPUT #3, RECEIVEDATA$
  82. 1810  PRINT
  83. 1820  IF RECEIVEDATA$ = "0" THEN PRINT "RESPONSE = OK" : RETURN
  84. 1830  IF RECEIVEDATA$ = "1" THEN PRINT "RESPONSE = CONNECT" : RETURN 1950
  85. 1840  IF RECEIVEDATA$ = "2" THEN PRINT "RESPONSE = RING" : RETURN
  86. 1850  IF RECEIVEDATA$ = "3" THEN PRINT "RESPONSE = NO CARRIER" : END
  87. 1860  IF RECEIVEDATA$ = "4" THEN PRINT "RESPONSE = ERROR" : END
  88. 1870  '
  89. 1880  '*********************************************************
  90. 1890  '**  time delay for SEC seconds                         **
  91. 1900  '*********************************************************
  92. 1910  FOR DELAY = 1 TO 700*SEC : NEXT DELAY
  93. 1920  RETURN
  94. 1930  '
  95. 1940  '*********************************************************
  96. 1950  '**  routine to receive data and store it               **
  97. 1960  '*********************************************************
  98. 1970  ON COM(1) GOSUB 2100
  99. 1980  COM(1) ON
  100. 1990  IF VAL(RECEIVEDATA$) < 64000 THEN 1990
  101. 2000  '
  102. 2010  FOR I = 1 TO POINTER
  103. 2020  PRINT #2 , DATAIO$(I)
  104. 2030  NEXT I
  105. 2040  '
  106. 2050  CLOSE #2
  107. 2060  PRINT : PRINT "FILE - ";RECEIVE$;" RECEIVED AND STORED"
  108. 2070  GOTO 2200
  109. 2080  '
  110. 2090  '*********************************************************
  111. 2100  '**  store each line in array DATAIO$ via interrupt     **
  112. 2110  '*********************************************************
  113. 2120  LINE INPUT #3, RECEIVEDATA$
  114. 2130  POINTER = POINTER + 1
  115. 2140  DATAIO$(POINTER) = RECEIVEDATA$
  116. 2150  IF (RECEIVEDATA$ = "3") THEN PRINT : PRINT "LOSS OF CARRIER" : END
  117. 2160  IF VAL(RECEIVEDATA$) > 64000 THEN COM(1) OFF
  118. 2170  RETURN
  119. 2180  '
  120. 2190  '*********************************************************
  121. 2200  '**  routine to transmit data to distant end            **
  122. 2210  '*********************************************************
  123. 2220  COM(1) OFF
  124. 2230  ON ERROR GOTO 2330     ' TERMINATE
  125. 2240  SEC = 3 : GOSUB 1890
  126. 2250  WHILE NOT EOF(1)
  127. 2260  LINE INPUT #1 , SENDDATA$
  128. 2270  PRINT #3, SENDDATA$
  129. 2280  WEND
  130. 2290  PRINT #3, "65000 '"
  131. 2300  PRINT : PRINT "FILE - ";TRANSMIT$;" TRANSMITTED OK"
  132. 2310  '
  133. 2320  '*********************************************************
  134. 2330  '**                 TERMINATE PROGRAM                   **
  135. 2340  '*********************************************************
  136. 2350  SEC = 20 : GOSUB 1890
  137. 2360  PRINT #3,"+++";
  138. 2370  SEC = 1 : GOSUB 1890
  139. 2380  PRINT #3,"AT Z"
  140. 2390  END
  141. 2400  RETURN
  142. 65000  '
  143.